#include <screen.h>

void screen_init(struct screen* screen, int w, int h, bool full)
{ //Инициализирует SDL и создает рабочее окн указанного разрешения.

    screen->full = full;
    if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO) < 0)
    {
	printf("Unable to init SDL: %s\n", SDL_GetError());
	exit(1);
    }

    if (screen->full)
    {
	screen->display = SDL_SetVideoMode(w, h, 0, SDL_SWSURFACE | SDL_ANYFORMAT | SDL_FULLSCREEN);
    }
    else
    {
	screen->display = SDL_SetVideoMode(w, h, 0, SDL_SWSURFACE | SDL_ANYFORMAT);
    }//Установка полноэкранного либо оконного режима

    SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);

    TTF_Init();
    screen->fnt = TTF_OpenFont("./data/fonts/courier.ttf", 20);

    screen->frames = 0;

    screen->then = SDL_GetTicks();
    atexit(SDL_Quit);
}

void screen_clear(struct screen* screen)
{// Очистка экрана и заливка его указанным цветом
    SDL_FillRect(screen->display, NULL, SDL_MapRGB(screen->display->format, 0, 0, 47)); // Очистка экрана и заливка его указанным цыетом
}

void print_ttf(SDL_Surface *sDest, char* message, TTF_Font* font, SDL_Color color, SDL_Rect dest){

 //TTF_Font *fnt = TTF_OpenFont(font, size);
 SDL_Surface *sText = TTF_RenderText_Blended( font, message, color);
 SDL_BlitSurface( sText,NULL, sDest,&dest );
 SDL_FreeSurface( sText );
 //TTF_CloseFont( fnt );

}

/* ---------------Печать шрифтом ДОПОЛНЕНИЯ--------------------------------------- */
void font_print (int r, int g, int b, int x, int y , char* txt, struct screen* screen){

	SDL_Color clr = {r,g,b,0};
	SDL_Rect dest = {x,y,0,0};
	print_ttf(screen->display, txt, screen->fnt, clr, dest);
}

void font_print (int r, int g, int b, int x, int y , int txt, struct screen* screen){

	char tmp[25];
    sprintf(tmp,"%i",txt);

	SDL_Color clr = {r,g,b,0};
	SDL_Rect dest = {x,y,0,0};
	print_ttf(screen->display, tmp, screen->fnt, clr, dest);
}
